home *** CD-ROM | disk | FTP | other *** search
/ Gold Medal Software 3 / Gold Medal Software - Volume 3 (Gold Medal) (1994).iso / prog / word.arj / 256CON.C < prev    next >
C/C++ Source or Header  |  1993-01-28  |  4KB  |  204 lines

  1. #include <dos.h>
  2. #include <conio.h>
  3. #include <stdio.h>
  4. #include <wgt.h>
  5. #include <wgtmenu.h>
  6. #include <filesel.h>
  7.  
  8.  
  9. color pal[256];    // our palette
  10. char *menubar[10]={" QUIT  "," FILE "," MODE ",NULL,NULL,NULL,NULL,NULL,NULL,NULL};
  11. int menuchoice; // result from menus
  12. wgtfont little; // smaller font with special characters 
  13. int picmode=3;    // mode for picture (PCX,PAK,BLK)
  14. char *picturename; // filename of picture for loading and saving
  15.            // used with file selector
  16. char *palname;       // filename of palette
  17. block screen2;       // a virtual screen to load pictures onto
  18.  
  19.  
  20. void changemode(int);
  21. void loadapicture(void);
  22. void saveapicture(void);
  23. void dopalette(void);
  24.  
  25. void main(void)
  26. {
  27. vga256();
  28.  
  29. screen2=wnewblock(0,0,319,199);
  30. little=wloadfont("c:\\tc\\newwgt\\fonts\\medium.wfn");
  31. wreadpalette(0,255,&pal);
  32. wsetrgb(1,63,63,63,&pal);
  33. wsetrgb(253,50,50,50,&pal);
  34. wsetrgb(254,40,40,40,&pal);
  35. wsetrgb(255,30,30,30,&pal);
  36. wsetpalette(0,255,&pal);
  37.  
  38. menubarcolor=254;
  39. menubartextcolor=1;
  40. bordercolor=255;
  41. highlightcolor=144;
  42.  
  43. menufont=little;
  44.  
  45. dropdown[0].choice[0]=" QUIT ";
  46.  
  47. dropdown[1].choice[0]="LOAD A PICTURE";
  48. dropdown[1].choice[1]="--------------";
  49. dropdown[1].choice[2]="SAVE A PICTURE";
  50. dropdown[1].choice[3]="--------------";
  51. dropdown[1].choice[4]="LOAD A PALETTE";
  52. dropdown[1].choice[5]="--------------";
  53. dropdown[1].choice[6]="SAVE A PALETTE";
  54.  
  55. dropdown[2].choice[0]=" PCX \x09";
  56. dropdown[2].choice[1]=" PAK \x09";
  57. dropdown[2].choice[2]=" BLK \x0A";
  58.  
  59. initdropdowns();
  60.  
  61. showmenubar();
  62.  
  63.   mon();
  64.  
  65. do { menuchoice=checkmenu();
  66.  
  67.  switch (menuchoice)
  68.    {
  69.    case 20:
  70.    case 21:
  71.    case 22: changemode(menuchoice-19); break;
  72.    case 10: loadapicture(); break;
  73.    case 12: saveapicture(); break;
  74.    case 14: dopalette(); break;
  75.  
  76.   }
  77.  } while (menuchoice !=0);    // quit
  78.  
  79.  
  80. removemenubar();
  81. free(little);            // free the font
  82. wfreeblock(screen2);
  83. textmode(C80);
  84. }
  85.  
  86.  
  87. void changemode(int cmode)
  88. {
  89. // make all boxes empty
  90. dropdown[2].choice[0]=" PCX \x09";
  91. dropdown[2].choice[1]=" PAK \x09";
  92. dropdown[2].choice[2]=" BLK \x09";
  93.  
  94.  
  95. // and put a check mark in the right one
  96. if (cmode==1)
  97. dropdown[2].choice[0]=" PCX \x0A";
  98. else if (cmode==2)
  99. dropdown[2].choice[1]=" PAK \x0A";
  100. else if (cmode==3)
  101. dropdown[2].choice[2]=" BLK \x0A";
  102.  
  103. picmode=cmode;
  104. }
  105.  
  106.  
  107. void loadapicture()
  108. {
  109. block tempblock=NULL;
  110.  
  111.    moff();
  112. removemenubar();
  113.  
  114. if (picmode==1)
  115.     picturename=wfileselector("Load a PCX","*.pcx");
  116. else if (picmode==2)
  117.     picturename=wfileselector("Load a PAK","*.pak");
  118. else if (picmode==3)
  119.     picturename=wfileselector("Load a BLK","*.blk");
  120.  
  121.   moff();
  122. if (picturename !=NULL)    // if you selected something
  123.     {
  124.     wsetscreen(screen2);
  125.     wcls(0);            // clear the virtual screen
  126.     if (picmode==1)
  127.        {
  128.        tempblock=wloadpcx256(picturename,&pal);
  129.        wputblock(0,0,tempblock,0);
  130.     wsetrgb(1,63,63,63,&pal);
  131.     wsetrgb(253,50,50,50,&pal);
  132.     wsetrgb(254,40,40,40,&pal);
  133.     wsetrgb(255,30,30,30,&pal);
  134.     wsetpalette(0,255,&pal);
  135.       }
  136.     else if (picmode==2)
  137.        {
  138.        tempblock=wloadpak(picturename);
  139.        wputblock(0,0,tempblock,0);
  140.        }
  141.     else if (picmode==3)
  142.        {
  143.        tempblock=wloadblock(picturename);
  144.        wputblock(0,0,tempblock,0);
  145.        }
  146.  
  147.     if (tempblock !=NULL)
  148.        wfreeblock(tempblock);
  149.     }
  150. wnormscreen();
  151. wputblock(0,0,screen2,0);
  152. showmenubar();
  153.    mon();
  154. }
  155.  
  156. void saveapicture()
  157. {
  158. removemenubar();
  159.  
  160.    moff();
  161. if (picmode==1)
  162.     picturename=wfileselector("Save a PCX","*.pcx");
  163. else if (picmode==2)
  164.     picturename=wfileselector("Save a PAK","*.pak");
  165. else if (picmode==3)
  166.     picturename=wfileselector("Save a BLK","*.blk");
  167.  
  168.  
  169. if (picturename !=NULL)    // if you selected something
  170.     {
  171.     moff();
  172.     wnormscreen();
  173.     wputblock(0,0,screen2,0);
  174.     if (picmode==1)
  175.        wsavepcx256(picturename,screen2,&pal);
  176.     if (picmode==2)
  177.        wsavepak(picturename,screen2);
  178.     else if (picmode==3)
  179.        wsaveblock(picturename,screen2);
  180.     }
  181. showmenubar();
  182.    mon();
  183. }
  184.  
  185.  
  186. void dopalette(void)
  187. {
  188.  
  189. moff();
  190. removemenubar();
  191.  
  192. palname=wfileselector("Load a palette","*.pal");
  193. moff();
  194. if (palname !=NULL)
  195. wloadpalette(palname,&pal);
  196. wsetpalette(0,255,&pal);
  197. }
  198. wnormscreen();
  199. wputblock(0,0,screen2,0);
  200. showmenubar();
  201. mon();
  202. }
  203.